package com.skiving.cloud.admin.service;

import com.mybatisflex.core.paginate.Page;
import com.skiving.cloud.admin.entity.SysUser;
import com.skiving.cloud.common.utils.PageParameter;
import com.mybatisflex.core.service.IService;
import com.skiving.cloud.admin.entity.SysUserRole;

import java.util.List;

/**
 * 用户与角色对应关系 服务层。
 *
 * @author skivingcloud
 * @since 2025-03-08
 */
public interface SysUserRoleService extends IService<SysUserRole> {
    /**
     * 分页查询用户与角色对应关系
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    Page<SysUserRole> queryByPage(PageParameter<SysUserRole> parameter);

    /**
     * 查询未设置该角色的用户
     * @param parameter 参数
     * @return 结果
     */
    Page<SysUser> queryNotSetByPage(PageParameter<SysUserRole> parameter);

    /**
     * 根据用户id查询用户角色关系
     * @param id 用户id
     * @return 结果
     */
    List<SysUserRole> listByUserId(String id);
}
